Welcome to pandas!

1.5 Numpy数据类型转换

利用array创建数组时,可设置数据类型,也可以用astype()函数对已存在数组转换数据类型

1.5.1常见数据设置表


数据名称 简写 注释
bool ?,b1 布尔型(True ,False,如是数据则0为False)
int8 b,i1 字节(-128~127)
int16 b,i2 整数(-32768~32768)
int32 b,i4 长整(-10位数~10位数)可表示为int
int64 b,i8 长整(-19位数~19位数)
uint8 B,u1 无符号整数(0~255)
uint16 H,u2 无符号整数(0~65535)
uint32 I,u2 无符号整数(0~10位数)
uint64 Q,u8 无符号整数(0~19位数)
float16 f2,e 单精度浮点数,包括1个符号位,5个指数位,10个尾数位
float32 f,f4 单精度浮点数,包括1个符号位,8个指数位,23个尾数位
float64 d,f8 单精度浮点数,包括1个符号位,11个指数位,52个尾数位,可表示为float
str a,S 字符串,只包含ASCII码字符,S或a后表示字符长度,超出字符长度部份则会被截断
unicode U Unicode字符串,U后表示字符长度,超出字符长度部份则会被截断
datetime64 M8 年(“Y”),月(“M”),周(“Y”),天(“D”),小时(“H”),分(“m”),秒(“s”),毫秒(“ms”),微秒(“us”)
timedelta64 表示时间差,年(“Y”),月(“M”),周(“Y”),天(“D”),小时(“H”),分(“m”),秒(“s”),毫秒(“ms”),微秒(“us”)

 

1.5.2 字符串默认格式

只要一个为字符串,则其余元素均默认为字符串

import numpy as np

arr=np.array([ 1,"12",99,3544 ])

print (arr)

返回:

['1' '12' '99' '3544']


1.5.3 数据设置返回类型为整数

设置为整数

import numpy as np

arr=np.array([ 1,"12",99,3544 ], dtype = "i" )

print (arr)

返回:

[ 1 12 99 3544]


1.5.4 字符串数据截取位数

import numpy as np

arr=np.array([ 1,"12",99,3544 ], dtype = "U2" )

print (arr)

返回:

['1' '12' '99' '35']


1.5.5 数据设置成年格式

import numpy as np

arr=np.array([ 1,"12",2018,3544 ])

arr1=arr.astype( "datetime64[Y]" )

print (arr1)

返回:

['0001' '0012' '2018' '3544']


1.5.6 数据设置成日期格式

import numpy as np

arr=np.array([ 1,"12",2018,3544 ])

arr1=arr.astype( "datetime64[D]" )

print (arr1)

返回:

['0001-01-01' '0012-01-01' '2018-01-01' '3544-01-01']


1.5.7 数字格式指定起始日期转成日期格式

数据转换的日期是1970-1-1开始的,pd.to datetime(),可以让用户自定义起始日期,

import numpy as np

arr=pd.to_datetime([ 0,12,1225,34 ], unit = "D" , origin= '2000-1-1' )

print (arr)

返回:

DatetimeIndex(['2000-01-01', '2000-01-13', '2003-05-10', '2000-02-04'], dtype='datetime64[ns]', freq=None)


1.5.8 数字格式转成日期格式(返回操作列数据形式)

以下实例为源数据是数据格式变成日期格式,如源数据为日期,则不用再指定起止日

import pandas as pd

path=r 'D:\pythonCharm\PyObject\Object\测试\简单测试.xlsx'

df=pd.read_excel (path)

t=pd.to_datetime(df[ "入职日期" ], unit= "D" , origin= '1899-12-30' )     #日期为1900-1-1往前推两位才能对齐

print (t)

返回:

0 2023-11-01
1 2020-01-01
2 2021-07-07

Name: 入职日期, dtype: datetime64[ns]

以上返回的的结果不是数组,如要变成数组,则需要另外写入。


1.5.9数字格式转成日期格式(返回为整个数据形式)

以下实例为将源数据的数字日期转换成日期格式

import pandas as pd

path=r "D:\Pyobject2023\object\测试\素材\1.1.4 Numpy数组转换.xlsx"

df=pd.read_excel (path)

df[ "入职日期" ]=pd.to_datetime(df[ "入职日期" ], unit= "D" , origin= '1899-12-30' )

print (df)

返回:

姓名 入职日期 基础工资
0 张三 2023-11-01 1000
1 李四 2020-01-01 2050
2 王五 2021-07-07 3041